import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class FontSizeProvider extends ChangeNotifier {
  double _fontScale = 1.1; // 默认字体缩放比例（中等）
  
  FontSizeProvider() {
    _loadSettings();
  }
  
  double get fontScale => _fontScale;
  
  // 设置字体缩放比例
  Future<void> setFontScale(double scale) async {
    // 限制字体缩放范围在0.8到1.4之间
    _fontScale = scale.clamp(0.8, 1.4);
    notifyListeners();
    await _saveSettings();
  }
  
  // 增加字体大小
  Future<void> increaseFontSize() async {
    await setFontScale(_fontScale + 0.1);
  }
  
  // 减小字体大小
  Future<void> decreaseFontSize() async {
    await setFontScale(_fontScale - 0.1);
  }
  
  // 重置字体大小
  Future<void> resetFontSize() async {
    await setFontScale(1.1);
  }
  
  // 加载设置
  Future<void> _loadSettings() async {
    try {
      final prefs = await SharedPreferences.getInstance();
      final fontScale = prefs.getDouble('fontScale') ?? 1.1;
      
      _fontScale = fontScale;
    } catch (e) {
      // 使用默认值
      _fontScale = 1.1;
    }
    notifyListeners();
  }
  
  // 保存设置
  Future<void> _saveSettings() async {
    try {
      final prefs = await SharedPreferences.getInstance();
      await prefs.setDouble('fontScale', _fontScale);
    } catch (e) {
      // 忽略保存错误
    }
  }
}